package leetcode_cn;

/**
 * 两个整数之和
 *
 * @author briarbear
 * @blog https://briarbear.github.io
 * @date 2018-09-04 14:26
 */
public class GetSum {
    /**
     * 不使用运算符 + 和 - ​​​​​​​，计算两整数 ​​​​​​​a 、b ​​​​​​​之和。
     */
    public int getSum(int a, int b) {

        int carry,res;
        do{
            carry = (a & b) << 1;  //与运算 保存进位的结果
            res = (a ^ b);      // 异或运算 保存各位相加的结果
            a = res;
            b = carry;
        }while (carry != 0);  //当无进位的情况，退出循环


        return res;
    }

    public static void main(String[] args) {
        System.out.println(new GetSum().getSum(2, 7));
    }
}
